package testenum;

// 枚举类继承于 Enum（抽象类）
public enum TestEnum {
    RED("red",1),BLACK("black",2),GREEN("green",3);

    private String color;
    private int ordinal;

    // 这个构造方法默认是私有的
    TestEnum(String color, int ordinal) {
        this.color = color;
        this.ordinal = ordinal;
    }

    public static TestEnum getEnumKey (int key) {
        for (TestEnum t: TestEnum.values()) {
            if(t.ordinal == key) {
                return t;
            }
        }
        return null;
    }


    public static void main(String[] args) {
        // 以数组形式返回枚举类型的所有成员
        TestEnum[] testEnums = TestEnum.values();
        for (int i = 0; i < testEnums.length; i++) {
            // 获取枚举成员的索引
            System.out.println(testEnums[i]+"索引: "+testEnums[i].ordinal());
        }

        // 将普通字符串转换为枚举实例
        TestEnum testEnum = TestEnum.valueOf("RED");
        System.out.println(testEnum);

        // 比较枚举成员在定义时的顺序
        System.out.println(RED.compareTo(GREEN));
    }


    public static void main1(String[] args) {
        TestEnum color = RED;
        // switch 使用枚举
        switch (color) {
            case GREEN:
                System.out.println("GREEN");
                break;
            case BLACK:
                System.out.println("BLACK");
                break;
            case RED:
                System.out.println("RED");
                break;
            default:
                break;
        }
    }
}
